scripts/Simlation study/plotting.R

load(file = "data/simulation-results/n1000 R2 dgp-optimal precal-FALSE.RData")
load(file = "data/simulation-results/n1000 R1000 dgp-optimal precal-FALSE.RData")
resmat <- data.frame(res[[2]])
resmat[, -1] <- lapply(resmat[,-1], as.numeric)

# do things look reasonable when converted to the same scale?
resmat[resmat[, 1]=="sum", 2:6]
scaleThetaFromInf(0, 57, resmat[resmat[, 1]=="parametric", 2:6])
resmat[resmat[, 1]=="optimal", 2:6]*60/100
res[[1]][1:5]*60/100

# RMSE
RMSE(resmat[resmat[, 1]=="sum", 2], res[[1]][1])
head(res[[1]]*60/100)
resmat[resmat[, 1]=="sum", -1][1, 1:6]

sumRmse <- ncol(resmat)-1


sumRmse <- apply(resmat[resmat[, 1]=="sum", -1], 2, RMSE, res[[1]]*60/100) # apply RMSE for each column





resmatrix <- cbind(true = res[[1]],
                   sumScores = colMeans(res[[2]]),
                   parScores = colMeans(res[[3]]),
                   optScores = colMeans(res[[4]]))
dfToPlot <- data.frame(true = res[[1]],
                       sumScores = colMeans(res[[2]]),
                       parScores = colMeans(res[[3]]),
                       optScores = colMeans(res[[4]]))
ggplot(data.frame(dfToPlot), aes(x=true, y=optScores-true)) +
    theme_bw()+
    geom_point()



        # plot inf scale
        p <- ggplot(NULL) +
        geom_line(data = longer.format, aes(Theta, probability,
                                            color=category,
                                            linetype=type)) +
        ggtitle(title) +
        xlab(expression(theta)) +
        ylab(yText) +
        scale_x_continuous(expand = c(0, 0)) +
        scale_y_continuous(limits = c(NA, maxy), expand = c(0, 0)) +
        #geom_hline(aes(yintercept = yinterc)) +
        theme_bw() +
        theme(text = element_text(size=16),
              axis.text.x=element_text(colour="black"),
              axis.text.y=element_text(colour="black"),
              legend.title=element_blank())
    if (!is.null(bincenters)&!is.null(binvalues)) {
        binDF <- as.data.frame(cbind(bincenters, binvalues))
        colnames(binDF)[2:(categories+1)] <- seq(0, categories-1)
        binDF <- tidyr::gather(binDF, category, binval, 2:(categories+1))
        p <- p + geom_point(data = binDF,
                            aes(x = bincenters, y = binval, color=category))
    }
    p
joakimwallmark/PolyOptimalIRT documentation built on Dec. 21, 2021, 1:16 a.m.